[INFO] cloning repository https://github.com/P-bibs/skiff
[INFO] running `Command { std: "git" "-c" "credential.helper=" "-c" "credential.helper=/workspace/cargo-home/bin/git-credential-null" "clone" "--bare" "https://github.com/P-bibs/skiff" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FP-bibs%2Fskiff", kill_on_drop: false }`
[INFO] [stderr] Cloning into bare repository '/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FP-bibs%2Fskiff'...
[INFO] running `Command { std: "git" "rev-parse" "HEAD", kill_on_drop: false }`
[INFO] [stdout] 05269a614f375b0c3be83fde26549da528258b96
[INFO] checking P-bibs/skiff against master#158f00a1c5175648af6f6099b075f78d1d014a28 for pr-121251
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FP-bibs%2Fskiff" "/workspace/builds/worker-7-tc1/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc1/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/P-bibs/skiff on toolchain 158f00a1c5175648af6f6099b075f78d1d014a28
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/P-bibs/skiff
[INFO] finished tweaking git repo https://github.com/P-bibs/skiff
[INFO] tweaked toml for git repo https://github.com/P-bibs/skiff written to /workspace/builds/worker-7-tc1/source/Cargo.toml
[INFO] crate git repo https://github.com/P-bibs/skiff already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] [stderr]  Downloading crates ...
[INFO] [stderr]   Downloaded logos v0.12.0
[INFO] [stderr]   Downloaded beef v0.5.0
[INFO] [stderr]   Downloaded logos-derive v0.12.0
[INFO] [stderr]   Downloaded syn v1.0.68
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] 5b0835def9e30914819abb9fdac95d5f7835883a4eda368b17dbbe8e32dedecc
[INFO] running `Command { std: "docker" "start" "-a" "5b0835def9e30914819abb9fdac95d5f7835883a4eda368b17dbbe8e32dedecc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "5b0835def9e30914819abb9fdac95d5f7835883a4eda368b17dbbe8e32dedecc", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5b0835def9e30914819abb9fdac95d5f7835883a4eda368b17dbbe8e32dedecc", kill_on_drop: false }`
[INFO] [stdout] 5b0835def9e30914819abb9fdac95d5f7835883a4eda368b17dbbe8e32dedecc
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc1/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+158f00a1c5175648af6f6099b075f78d1d014a28" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] a8a062a5dd5345374d0e46961cae72a6068f76bb368ce6522df243a05325c139
[INFO] running `Command { std: "docker" "start" "-a" "a8a062a5dd5345374d0e46961cae72a6068f76bb368ce6522df243a05325c139", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.26
[INFO] [stderr]    Compiling syn v1.0.68
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.74
[INFO] [stderr]    Compiling bumpalo v3.7.0
[INFO] [stderr]    Compiling wasm-bindgen v0.2.74
[INFO] [stderr]    Compiling libc v0.2.93
[INFO] [stderr]    Compiling typenum v1.13.0
[INFO] [stderr]    Compiling unicode-segmentation v1.7.1
[INFO] [stderr]     Checking unicode-width v0.1.8
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]    Compiling regex-syntax v0.6.23
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]    Compiling utf8-ranges v1.0.4
[INFO] [stderr]    Compiling beef v0.5.0
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]     Checking rand_xoshiro v0.4.0
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling im v15.0.0
[INFO] [stderr]    Compiling heck v0.3.2
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking colored v2.0.0
[INFO] [stderr]    Compiling wasm-bindgen-test-macro v0.3.24
[INFO] [stderr]     Checking bitmaps v2.1.0
[INFO] [stderr]     Checking sized-chunks v0.6.5
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.74
[INFO] [stderr]    Compiling structopt-derive v0.4.14
[INFO] [stderr]    Compiling logos-derive v0.12.0
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.74
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.74
[INFO] [stderr]     Checking structopt v0.3.21
[INFO] [stderr]     Checking logos v0.12.0
[INFO] [stderr]     Checking console_error_panic_hook v0.1.6
[INFO] [stderr]     Checking js-sys v0.3.51
[INFO] [stderr]     Checking skiff v0.4.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 266 |                 None => throw_interp_error!(format!("Couldn't find var in environment: {}", id)),
[INFO] [stdout]     |                         ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 275 |             throw_interp_error!("Found LetNodeTopLevel instead of LetNode in expression".to_string())
[INFO] [stdout]     |             ----------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `throw_interp_error`
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 319 |                 _ => throw_interp_error!("Function call with non-function value".to_string()),
[INFO] [stdout]     |                      ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 328 |                     _ => throw_interp_error!("Conditional expression with non-boolean condition"),
[INFO] [stdout]     |                          ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 334 |         AstNode::FunctionNode(_, _, _, _) => throw_interp_error!("Function node not at top level"),
[INFO] [stdout]     |                                              ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 336 |             throw_interp_error!("Found DataDeclarationNode instead of LetNode in expression")
[INFO] [stdout]     |             --------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `throw_interp_error`
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 355 |             throw_interp_error!("No branch of match expression matched value")
[INFO] [stdout]     |             ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `throw_interp_error`
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 457 |             (Val::Num(_), e) => throw_interp_error!(format!("Bad second op to {}: {}", "**", e)),
[INFO] [stdout]     |                                 ---------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 458 |             (e, Val::Num(_)) => throw_interp_error!(format!("Bad first op to {}: {}", "**", e)),
[INFO] [stdout]     |                                 --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 459 |             (e1, e2) => throw_interp_error!(format!("Bad ops to {}: {}\n{}", "**", e1, e2)),
[INFO] [stdout]     |                         ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: fields `stop_after_lexing`, `stop_after_parsing`, `stop_after_types`, and `path` are never read
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | struct Cli {
[INFO] [stdout]    |        --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     stop_after_lexing: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     stop_after_parsing: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     stop_after_types: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     path: std::path::PathBuf,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Cli` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Checking wasm-bindgen-futures v0.4.24
[INFO] [stderr]     Checking wasm-bindgen-test v0.3.24
[INFO] [stdout] warning: fields `stop_after_lexing`, `stop_after_parsing`, `stop_after_types`, and `path` are never read
[INFO] [stdout]   --> src/main.rs:12:5
[INFO] [stdout]    |
[INFO] [stdout] 9  | struct Cli {
[INFO] [stdout]    |        --- fields in this struct
[INFO] [stdout] ...
[INFO] [stdout] 12 |     stop_after_lexing: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 16 |     stop_after_parsing: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 20 |     stop_after_types: bool,
[INFO] [stdout]    |     ^^^^^^^^^^^^^^^^
[INFO] [stdout] ...
[INFO] [stdout] 24 |     path: std::path::PathBuf,
[INFO] [stdout]    |     ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: `Cli` has a derived impl for the trait `Debug`, but this is intentionally ignored during dead code analysis
[INFO] [stdout]    = note: `#[warn(dead_code)]` on by default
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 1 warning emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 266 |                 None => throw_interp_error!(format!("Couldn't find var in environment: {}", id)),
[INFO] [stdout]     |                         ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 275 |             throw_interp_error!("Found LetNodeTopLevel instead of LetNode in expression".to_string())
[INFO] [stdout]     |             ----------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `throw_interp_error`
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 319 |                 _ => throw_interp_error!("Function call with non-function value".to_string()),
[INFO] [stdout]     |                      ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 328 |                     _ => throw_interp_error!("Conditional expression with non-boolean condition"),
[INFO] [stdout]     |                          ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 334 |         AstNode::FunctionNode(_, _, _, _) => throw_interp_error!("Function node not at top level"),
[INFO] [stdout]     |                                              ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 336 |             throw_interp_error!("Found DataDeclarationNode instead of LetNode in expression")
[INFO] [stdout]     |             --------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `throw_interp_error`
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 355 |             throw_interp_error!("No branch of match expression matched value")
[INFO] [stdout]     |             ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `throw_interp_error`
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 457 |             (Val::Num(_), e) => throw_interp_error!(format!("Bad second op to {}: {}", "**", e)),
[INFO] [stdout]     |                                 ---------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 458 |             (e, Val::Num(_)) => throw_interp_error!(format!("Bad first op to {}: {}", "**", e)),
[INFO] [stdout]     |                                 --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 459 |             (e1, e2) => throw_interp_error!(format!("Bad ops to {}: {}\n{}", "**", e1, e2)),
[INFO] [stdout]     |                         ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: 10 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr]     Finished `dev` profile [unoptimized + debuginfo] target(s) in 5.84s
[INFO] [stderr] warning: the following packages contain code that will be rejected by a future version of Rust: skiff v0.4.5 (/opt/rustwide/workdir)
[INFO] [stderr] note: to see what the problems were, use the option `--future-incompat-report`, or run `cargo report future-incompatibilities --id 2`
[INFO] running `Command { std: "docker" "inspect" "a8a062a5dd5345374d0e46961cae72a6068f76bb368ce6522df243a05325c139", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "a8a062a5dd5345374d0e46961cae72a6068f76bb368ce6522df243a05325c139", kill_on_drop: false }`
[INFO] [stdout] a8a062a5dd5345374d0e46961cae72a6068f76bb368ce6522df243a05325c139
[INFO] checking P-bibs/skiff against try#b4fc5dbf0bc33be331f9d893db5b3a794f29724a+rustflags=-Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds for pr-121251
[INFO] running `Command { std: "git" "clone" "/workspace/cache/git-repos/https%3A%2F%2Fgithub.com%2FP-bibs%2Fskiff" "/workspace/builds/worker-7-tc2/source", kill_on_drop: false }`
[INFO] [stderr] Cloning into '/workspace/builds/worker-7-tc2/source'...
[INFO] [stderr] done.
[INFO] validating manifest of git repo https://github.com/P-bibs/skiff on toolchain b4fc5dbf0bc33be331f9d893db5b3a794f29724a
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--manifest-path" "Cargo.toml" "--no-deps", kill_on_drop: false }`
[INFO] started tweaking git repo https://github.com/P-bibs/skiff
[INFO] finished tweaking git repo https://github.com/P-bibs/skiff
[INFO] tweaked toml for git repo https://github.com/P-bibs/skiff written to /workspace/builds/worker-7-tc2/source/Cargo.toml
[INFO] crate git repo https://github.com/P-bibs/skiff already has a lockfile, it will not be regenerated
[INFO] running `Command { std: CARGO_HOME="/workspace/cargo-home" RUSTUP_HOME="/workspace/rustup-home" "/workspace/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "fetch" "--manifest-path" "Cargo.toml", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "metadata" "--no-deps" "--format-version=1", kill_on_drop: false }`
[INFO] [stdout] e6dadd45526e33060d7bc1d45241465923e0463ec84dd402a48d08774689fa75
[INFO] running `Command { std: "docker" "start" "-a" "e6dadd45526e33060d7bc1d45241465923e0463ec84dd402a48d08774689fa75", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "inspect" "e6dadd45526e33060d7bc1d45241465923e0463ec84dd402a48d08774689fa75", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "e6dadd45526e33060d7bc1d45241465923e0463ec84dd402a48d08774689fa75", kill_on_drop: false }`
[INFO] [stdout] e6dadd45526e33060d7bc1d45241465923e0463ec84dd402a48d08774689fa75
[INFO] running `Command { std: "docker" "create" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/target:/opt/rustwide/target:rw,Z" "-v" "/var/lib/crater-agent-workspace/builds/worker-7-tc2/source:/opt/rustwide/workdir:ro,Z" "-v" "/var/lib/crater-agent-workspace/cargo-home:/opt/rustwide/cargo-home:ro,Z" "-v" "/var/lib/crater-agent-workspace/rustup-home:/opt/rustwide/rustup-home:ro,Z" "-e" "SOURCE_DIR=/opt/rustwide/workdir" "-e" "CARGO_TARGET_DIR=/opt/rustwide/target" "-e" "CARGO_INCREMENTAL=0" "-e" "RUST_BACKTRACE=full" "-e" "RUSTFLAGS=--cap-lints=forbid -Dexplicit_range -Dtrait_impl_range -Wrange_syntax -Wrange_bounds" "-e" "RUSTDOCFLAGS=--cap-lints=forbid" "-e" "CARGO_HOME=/opt/rustwide/cargo-home" "-e" "RUSTUP_HOME=/opt/rustwide/rustup-home" "-w" "/opt/rustwide/workdir" "-m" "1610612736" "--user" "0:0" "--network" "none" "ghcr.io/rust-lang/crates-build-env/linux@sha256:2788e3201cd34a07e3172128adcd8b3090168a8e3bcc40d7c032b9dda1df7d1c" "/opt/rustwide/cargo-home/bin/cargo" "+b4fc5dbf0bc33be331f9d893db5b3a794f29724a" "check" "--frozen" "--all" "--all-targets" "--message-format=json", kill_on_drop: false }`
[INFO] [stdout] 5cddfd7df8e45c362b582445b49f6c8491a47337e03a69de961dae2eafce4e03
[INFO] running `Command { std: "docker" "start" "-a" "5cddfd7df8e45c362b582445b49f6c8491a47337e03a69de961dae2eafce4e03", kill_on_drop: false }`
[INFO] [stderr]    Compiling proc-macro2 v1.0.26
[INFO] [stderr]    Compiling syn v1.0.68
[INFO] [stderr]    Compiling version_check v0.9.3
[INFO] [stderr]    Compiling wasm-bindgen-shared v0.2.74
[INFO] [stderr]    Compiling log v0.4.14
[INFO] [stderr]    Compiling bumpalo v3.7.0
[INFO] [stderr]    Compiling wasm-bindgen v0.2.74
[INFO] [stderr]    Compiling libc v0.2.93
[INFO] [stderr]    Compiling typenum v1.13.0
[INFO] [stderr]     Checking unicode-width v0.1.8
[INFO] [stderr]    Compiling unicode-segmentation v1.7.1
[INFO] [stderr]    Compiling beef v0.5.0
[INFO] [stderr]    Compiling utf8-ranges v1.0.4
[INFO] [stderr]     Checking ansi_term v0.11.0
[INFO] [stderr]    Compiling fnv v1.0.7
[INFO] [stderr]     Checking rand_core v0.5.1
[INFO] [stderr]     Checking textwrap v0.11.0
[INFO] [stderr]    Compiling regex-syntax v0.6.23
[INFO] [stderr]     Checking rand_xoshiro v0.4.0
[INFO] [stderr]    Compiling proc-macro-error-attr v1.0.4
[INFO] [stderr]    Compiling proc-macro-error v1.0.4
[INFO] [stderr]    Compiling im v15.0.0
[INFO] [stderr]    Compiling heck v0.3.2
[INFO] [stderr]    Compiling quote v1.0.9
[INFO] [stderr]     Checking atty v0.2.14
[INFO] [stderr]     Checking clap v2.33.3
[INFO] [stderr]     Checking colored v2.0.0
[INFO] [stderr]    Compiling wasm-bindgen-test-macro v0.3.24
[INFO] [stderr]     Checking bitmaps v2.1.0
[INFO] [stderr]     Checking sized-chunks v0.6.5
[INFO] [stderr]    Compiling wasm-bindgen-backend v0.2.74
[INFO] [stderr]    Compiling structopt-derive v0.4.14
[INFO] [stderr]    Compiling logos-derive v0.12.0
[INFO] [stderr]    Compiling wasm-bindgen-macro-support v0.2.74
[INFO] [stderr]    Compiling wasm-bindgen-macro v0.2.74
[INFO] [stderr]     Checking structopt v0.3.21
[INFO] [stderr]     Checking logos v0.12.0
[INFO] [stderr]     Checking console_error_panic_hook v0.1.6
[INFO] [stderr]     Checking js-sys v0.3.51
[INFO] [stderr]     Checking skiff v0.4.5 (/opt/rustwide/workdir)
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/error_handling.rs:64:17
[INFO] [stdout]    |
[INFO] [stdout] 64 |     if span == (0..0) {
[INFO] [stdout]    |                 ^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-W range-syntax`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/error_handling.rs:69:14
[INFO] [stdout]    |
[INFO] [stdout] 69 |     for i in start_line..(end_line + 1) {
[INFO] [stdout]    |              ^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/error_handling.rs:108:26
[INFO] [stdout]     |
[INFO] [stdout] 108 |     for (i, c) in source[0..index].chars().enumerate() {
[INFO] [stdout]     |                          ^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/runtime.rs:105:32
[INFO] [stdout]     |
[INFO] [stdout] 105 |                 span.unwrap_or(0..0),
[INFO] [stdout]     |                                ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/runtime.rs:132:25
[INFO] [stdout]     |
[INFO] [stdout] 132 |                         0..0,
[INFO] [stdout]     |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/runtime.rs:145:25
[INFO] [stdout]     |
[INFO] [stdout] 145 |                         0..0,
[INFO] [stdout]     |                         ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]  --> src/lexer/lex.rs:5:16
[INFO] [stdout]   |
[INFO] [stdout] 5 |     Some(slice[1..slice.len() - 1].into())
[INFO] [stdout]   |                ^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parser/parse.rs:272:21
[INFO] [stdout]     |
[INFO] [stdout] 272 |                     id_span.start..type_span.end,
[INFO] [stdout]     |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parser/parselets.rs:131:23
[INFO] [stdout]     |
[INFO] [stdout] 131 |                 span: span_start..span_end,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parser/parselets.rs:160:23
[INFO] [stdout]     |
[INFO] [stdout] 160 |                 span: span_start..span_end,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parser/parselets.rs:219:23
[INFO] [stdout]     |
[INFO] [stdout] 219 |                 span: span_start..span_end,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parser/parselets.rs:245:27
[INFO] [stdout]     |
[INFO] [stdout] 245 |                     span: span_start..span_end,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parser/parselets.rs:253:27
[INFO] [stdout]     |
[INFO] [stdout] 253 |                     span: span_start..span_end,
[INFO] [stdout]     |                           ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parser/parselets.rs:365:23
[INFO] [stdout]     |
[INFO] [stdout] 365 |                 span: span_start..span_end,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parser/parselets.rs:423:23
[INFO] [stdout]     |
[INFO] [stdout] 423 |                 span: span_start..span_end,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]    --> src/parser/parselets.rs:481:23
[INFO] [stdout]     |
[INFO] [stdout] 481 |                 span: span_start..span_end,
[INFO] [stdout]     |                       ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parser/types/parse.rs:14:49
[INFO] [stdout]    |
[INFO] [stdout] 14 |                 return Ok((Type::new(id, args), id_span.start..args_span_end));
[INFO] [stdout]    |                                                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parser/types/parse.rs:21:21
[INFO] [stdout]    |
[INFO] [stdout] 21 |                     id_span.start..return_type_span.end,
[INFO] [stdout]    |                     ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/parser/types/parse.rs:36:17
[INFO] [stdout]    |
[INFO] [stdout] 36 |                 open_paren_span.start..return_type_span.end,
[INFO] [stdout]    |                 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/interpreter/interpret.rs:38:37
[INFO] [stdout]    |
[INFO] [stdout] 38 |             src_loc: SrcLoc { span: 0..0 },
[INFO] [stdout]    |                                     ^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: usage of `Range` range syntax
[INFO] [stdout]   --> src/interpreter/interpret.rs:57:24
[INFO] [stdout]    |
[INFO] [stdout] 57 |                 source[span.start..span.end].to_string(),
[INFO] [stdout]    |                        ^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 266 |                 None => throw_interp_error!(format!("Couldn't find var in environment: {}", id)),
[INFO] [stdout]     |                         ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: `#[warn(semicolon_in_expressions_from_macros)]` on by default
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 275 |             throw_interp_error!("Found LetNodeTopLevel instead of LetNode in expression".to_string())
[INFO] [stdout]     |             ----------------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `throw_interp_error`
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 319 |                 _ => throw_interp_error!("Function call with non-function value".to_string()),
[INFO] [stdout]     |                      ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 328 |                     _ => throw_interp_error!("Conditional expression with non-boolean condition"),
[INFO] [stdout]     |                          ------------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 334 |         AstNode::FunctionNode(_, _, _, _) => throw_interp_error!("Function node not at top level"),
[INFO] [stdout]     |                                              ----------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 336 |             throw_interp_error!("Found DataDeclarationNode instead of LetNode in expression")
[INFO] [stdout]     |             --------------------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `throw_interp_error`
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 355 |             throw_interp_error!("No branch of match expression matched value")
[INFO] [stdout]     |             ------------------------------------------------------------------ in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: macro invocations at the end of a block are treated as expressions
[INFO] [stdout]     = note: to ignore the value produced by the macro, add a semicolon after the invocation of `throw_interp_error`
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 457 |             (Val::Num(_), e) => throw_interp_error!(format!("Bad second op to {}: {}", "**", e)),
[INFO] [stdout]     |                                 ---------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 458 |             (e, Val::Num(_)) => throw_interp_error!(format!("Bad first op to {}: {}", "**", e)),
[INFO] [stdout]     |                                 --------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] warning: trailing semicolon in macro used in expression position
[INFO] [stdout]    --> src/interpreter/interpret.rs:18:19
[INFO] [stdout]     |
[INFO] [stdout] 18  |                 ));
[INFO] [stdout]     |                   ^
[INFO] [stdout] ...
[INFO] [stdout] 459 |             (e1, e2) => throw_interp_error!(format!("Bad ops to {}: {}\n{}", "**", e1, e2)),
[INFO] [stdout]     |                         ------------------------------------------------------------------- in this macro invocation
[INFO] [stdout]     |
[INFO] [stdout]     = warning: this was previously accepted by the compiler but is being phased out; it will become a hard error in a future release!
[INFO] [stdout]     = note: for more information, see issue #79813 <https://github.com/rust-lang/rust/issues/79813>
[INFO] [stdout]     = note: this warning originates in the macro `throw_interp_error` (in Nightly builds, run with -Z macro-backtrace for more info)
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public struct field
[INFO] [stdout]   --> src/ast.rs:96:15
[INFO] [stdout]    |
[INFO] [stdout] 96 |     pub span: Range<usize>,
[INFO] [stdout]    |               ^^^^^^^^^^^^
[INFO] [stdout]    |
[INFO] [stdout]    = note: requested on the command line with `-D explicit-range`
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]  --> src/error_handling.rs:6:11
[INFO] [stdout]   |
[INFO] [stdout] 6 |     span: Range<usize>,
[INFO] [stdout]   |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/error_handling.rs:24:11
[INFO] [stdout]    |
[INFO] [stdout] 24 |     span: Range<usize>,
[INFO] [stdout]    |           ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/parser/parse.rs:73:30
[INFO] [stdout]    |
[INFO] [stdout] 73 |     tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parse.rs:135:30
[INFO] [stdout]     |
[INFO] [stdout] 135 |     tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parse.rs:181:30
[INFO] [stdout]     |
[INFO] [stdout] 181 |     tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parse.rs:229:30
[INFO] [stdout]     |
[INFO] [stdout] 229 |     tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parse.rs:236:30
[INFO] [stdout]     |
[INFO] [stdout] 236 |     tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parse.rs:247:35
[INFO] [stdout]     |
[INFO] [stdout] 247 |     initial_token: Option<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parse.rs:248:30
[INFO] [stdout]     |
[INFO] [stdout] 248 |     tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/parser/parselets.rs:42:35
[INFO] [stdout]    |
[INFO] [stdout] 42 |         _tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/parser/parselets.rs:43:32
[INFO] [stdout]    |
[INFO] [stdout] 43 |         current_token: (Token, std::ops::Range<usize>),
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/parser/parselets.rs:57:35
[INFO] [stdout]    |
[INFO] [stdout] 57 |         _tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]    |                                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/parser/parselets.rs:58:32
[INFO] [stdout]    |
[INFO] [stdout] 58 |         current_token: (Token, std::ops::Range<usize>),
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/parser/parselets.rs:72:34
[INFO] [stdout]    |
[INFO] [stdout] 72 |         tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]    |                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/parser/parselets.rs:73:32
[INFO] [stdout]    |
[INFO] [stdout] 73 |         current_token: (Token, std::ops::Range<usize>),
[INFO] [stdout]    |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:141:34
[INFO] [stdout]     |
[INFO] [stdout] 141 |         tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:142:32
[INFO] [stdout]     |
[INFO] [stdout] 142 |         current_token: (Token, std::ops::Range<usize>),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:170:34
[INFO] [stdout]     |
[INFO] [stdout] 170 |         tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:171:32
[INFO] [stdout]     |
[INFO] [stdout] 171 |         current_token: (Token, std::ops::Range<usize>),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:229:34
[INFO] [stdout]     |
[INFO] [stdout] 229 |         tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:230:32
[INFO] [stdout]     |
[INFO] [stdout] 230 |         current_token: (Token, std::ops::Range<usize>),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:264:35
[INFO] [stdout]     |
[INFO] [stdout] 264 |         _tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                                   ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:265:32
[INFO] [stdout]     |
[INFO] [stdout] 265 |         current_token: (Token, std::ops::Range<usize>),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:279:34
[INFO] [stdout]     |
[INFO] [stdout] 279 |         tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:280:33
[INFO] [stdout]     |
[INFO] [stdout] 280 |         _current_token: (Token, std::ops::Range<usize>),
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:295:34
[INFO] [stdout]     |
[INFO] [stdout] 295 |         tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:296:32
[INFO] [stdout]     |
[INFO] [stdout] 296 |         current_token: (Token, std::ops::Range<usize>),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:375:34
[INFO] [stdout]     |
[INFO] [stdout] 375 |         tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:376:32
[INFO] [stdout]     |
[INFO] [stdout] 376 |         current_token: (Token, std::ops::Range<usize>),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:444:34
[INFO] [stdout]     |
[INFO] [stdout] 444 |         tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:446:32
[INFO] [stdout]     |
[INFO] [stdout] 446 |         current_token: (Token, std::ops::Range<usize>),
[INFO] [stdout]     |                                ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:472:34
[INFO] [stdout]     |
[INFO] [stdout] 472 |         tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]     |                                  ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]    --> src/parser/parselets.rs:474:33
[INFO] [stdout]     |
[INFO] [stdout] 474 |         _current_token: (Token, std::ops::Range<usize>),
[INFO] [stdout]     |                                 ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public struct field
[INFO] [stdout]  --> src/parser/util.rs:7:46
[INFO] [stdout]   |
[INFO] [stdout] 7 | pub struct ParseError(pub String, pub Option<Range<usize>>);
[INFO] [stdout]   |                                              ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/parser/util.rs:37:30
[INFO] [stdout]    |
[INFO] [stdout] 37 |     tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public function
[INFO] [stdout]   --> src/parser/util.rs:51:30
[INFO] [stdout]    |
[INFO] [stdout] 51 |     tokens: &mut Vec<(Token, std::ops::Range<usize>)>,
[INFO] [stdout]    |                              ^^^^^^^^^^^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public enum definition
[INFO] [stdout]   --> src/type_inferencer/type_inference.rs:19:23
[INFO] [stdout]    |
[INFO] [stdout] 19 |     MissingAnnotation(Range<usize>),
[INFO] [stdout]    |                       ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: explicit usage of `Range` type in public struct field
[INFO] [stdout]   --> src/interpreter/interpret.rs:78:40
[INFO] [stdout]    |
[INFO] [stdout] 78 | pub struct InterpError(pub String, pub Range<usize>, pub Env, pub Stack);
[INFO] [stdout]    |                                        ^^^^^^^^^^^^
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stdout] error: aborting due to 39 previous errors; 31 warnings emitted
[INFO] [stdout] 
[INFO] [stdout] 
[INFO] [stderr] error: could not compile `skiff` (lib) due to 40 previous errors; 41 warnings emitted
[INFO] [stderr] warning: build failed, waiting for other jobs to finish...
[INFO] running `Command { std: "docker" "inspect" "5cddfd7df8e45c362b582445b49f6c8491a47337e03a69de961dae2eafce4e03", kill_on_drop: false }`
[INFO] running `Command { std: "docker" "rm" "-f" "5cddfd7df8e45c362b582445b49f6c8491a47337e03a69de961dae2eafce4e03", kill_on_drop: false }`
[INFO] [stdout] 5cddfd7df8e45c362b582445b49f6c8491a47337e03a69de961dae2eafce4e03
